package org.codefinger.json.parser.deserializer;

import java.math.BigDecimal;

import org.codefinger.json.JSONArray;
import org.codefinger.json.parser.JSONArrayDeserializer;
import org.codefinger.json.parser.JSONLexer;
import org.codefinger.json.parser.JSONObjectDeserializer;

public class ArrayDeserializerForJSONArray implements JSONArrayDeserializer {

	private JSONArray	jsonArray	= new JSONArray();

	@Override
	public JSONArrayDeserializer createArrayDeserializer() {
		return new ArrayDeserializerForJSONArray();
	}

	@Override
	public JSONObjectDeserializer createObjectDeserializer() {
		return new ObjectDeserializerForJSONObject();
	}

	@Override
	public void addValue(Object value) {
		jsonArray.add(value);
	}

	@Override
	public void addStringValue(JSONLexer jsonLexer) {
		jsonArray.add(jsonLexer.getJSONString());
	}

	@Override
	public void addIntValue(String value) {
		jsonArray.add(new BigDecimal(value));
	}

	@Override
	public void addFloatValue(String value) {
		jsonArray.add(new BigDecimal(value));
	}

	@Override
	public void addFalseValue() {
		jsonArray.add(false);
	}

	@Override
	public void addTrueValue() {
		jsonArray.add(true);
	}

	@Override
	public void addNullValue() {
		jsonArray.add(null);
	}

	
	@Override
	public Object getDeserializedValue() {
		return  jsonArray;
	}

}
